﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SystmicFunction.IRMHelper
{
    /// <summary>
    ///     异步 事件
    /// </summary>
    public class EventAsyncPro
    {
        //[MethodName]Async :异步开始
        /*******************
         * 方法可以有两个重载：单调用和多调用
         
         * * 单调用：如果在前一个调用尚未完成时调用将会抛出 InvalidOperationException 异常
         
         * * 多调用：有一个额外的状态对象参数userState。userState参数用来区分各次异步操作，使得我们可以多次调用<[多调用形式的方法]>,而不需要等待任何异步操作的完成
         
         * *
         *******************/


        //[MethodName]Completed :异步完成

        //[MethodName]CancelAsync / CancelAsync :异步取消
        /*******************
         
         * * 如果有多个异步方法，则应使用 CancelAsync 方法来取消挂起的操作，并可使用 userState 来取消指定的挂起任务.
         
         * * 如果只有一个异步方法则可以使用 MethodNameAsyncCancel 方法
         
         * MSDN 上说：一次只支持一个挂起的操作的方法（如 Method1Async(string param) ）是不可取消的。这句话我还没有理解，不可能说是单调用的异步方法就不能取消吧，BackgroundWorker 上都是这样做的
         * 
         ********************/

        //[MethodName]ProgressChanged / ProgressChanged :异步跟踪
    }


}
